import { loginAPI } from '@/api/user'
import { getProfileAPI } from '@/api/permiss'

export default {
  namespaced: true,
  state: () => {
    return {
      token: '',
      profile: {} // 当前用户的权限数据
    }
  },
  mutations: {
    setProfile(state, profile) {
      state.profile = profile
    },
    setToken(state, token) {
      state.token = token
    },
    clearUserInfo(state) {
      // 清除Token
      state.token = ''

      // 权限点清除
      state.profile = {}
    }
  },
  actions: {
    // 请求接口获取当前用户的权限数据
    async getProfile(ctx) {
      const res = await getProfileAPI()
      ctx.commit('setProfile', res.data)

      // return后，可以直接在  const perms = await store.dispatch('user/getUserProfile')
      // 时接收到返回的数据
      return res.data.permissions
    },
    async doLogin(ctx, { username, password }) {
      // 1. 调用接口
      const res = await loginAPI({ username, password })
      // 2. 提交mutation
      ctx.commit('setToken', res.data.token)
    }
  }
}